Formelplatzhalter
Um Werte auszugeben, die nicht als Datenfeld zur Verfügung stehen, die Sie aber über Formeln aus Variablen (zur Verfügung stehende Daten- oder ermittelte Formelfelder) und/oder Konstanten ermitteln können, verwenden Sie einen Formelplatzhalter.
Entwickeln Sie die Formel schrittweise durch die Auswahl oder Eingabe von Datenfeldern (Operanden) und Operatoren.
Formeleditor
In Formelfelder können Sie mit dem Schalter , über das Kontextmenü oder der Taste [F4] den Formeleditor für Ihre Formeldefinition öffnen. Beim Öffnen des Formeleditors wird eine vorhandene Formel im Formeleingabebereich eingetragen, eingefärbt und die Schreibmarke steht am Ende der Formel.
Folgende Farben werden den Formelbestandteilen zugewiesen:
- grün → Variablen
- blau → Funktionen
- lila → Operatoren
- dunkelrot → Zahlen (auch pi und e), Zeichenketten (auch newline), logischen Werte (true und false) sowie der Wert null
- schwarz → Sonstiges (runde Klammern, Semikolon)
- gelb hinterlegt wird die Formel ab der Position, die vom Programm nicht interpretiert werden kann
Beginnt man im Formeleingabebereich etwas einzutippen, werden in der Tabelle Vorschläge gemacht, die mit Enter akzeptiert werden können. Beispielsweise werden nach Eingabe von { alle Variablen aufgelistet. Die Abarbeitung erfolgt nach den üblichen Vorrangregeln (Potenzen vor Punktrechnung vor Strichrechnung). Wollen Sie eine bestimmte Abarbeitungsreihenfolge festlegen, müssen Sie zusätzlich runde Klammern benutzen. Zur Übersichtlichkeit können Sie zwischen Operatoren, Operanden und Klammern beliebig viele Leerzeichen einfügen.
Unterhalb des Eingabefensters befinden sich bis zu vier Schalter. [F2] listet alle Syntaxelemente (Funktionen und Operatoren) auf, [F3] alle zur Verfügung stehenden Variablen. Es werden hier alle zum jeweiligen Dialog verfügbare Datenfelder hierarchisch in Baumstruktur aufgelistet. Über den Schalter Verweis kann man auch Datenfelder aus anderen Tabellen auswählen. Den markierten, gewünschten Platzhalter übernehmen Sie per Doppelklick oder mit dem Schalter .
Der Schalter bzw. [F4] ist nur aktiv, wenn die Syntaxprüfung in der gesamten Formel oder im markierten Bereich der Formel keinen Fehler findet. Wird im Formeleingabebereich ein Textbereich markiert, wird hier das Ergebnis der Syntaxprüfung für den markierten Bereich angezeigt, ansonsten das Ergebnis der Syntaxprüfung der gesamten Formel. Existiert für das Formelfeld ein Standardwert, kann im Formeleditor über den dann verfügbaren Schalter bzw. der Taste [F5] die Formel auf den Programmstandard zurückgesetzt werden.
Mit bzw. [F10] wird der Dialog geschlossen und die Formel wird übernommen, egal ob sie gültig ist oder nicht. Wenn der Formeleditor aus einem einzeiligen Eingabefeld aufgerufen wurde, werden die Zeilenumbrüche gegen Leerzeichen ausgetauscht.
Mit Abbruch bzw.[ESC] oder Kreuz rechts oben wird der Dialog geschlossen und die Formel nicht übernommen.
Variablenauswahl
Daten- und Formelfelder bzw. Verweise können auch über die Variablenauswahl [F3] direkt in die Formel eingefügt werden.
Test
Prüfen Sie im Anschluss an Ihre Formeldefinition unbedingt die Richtigkeit der Syntax Ihrer Formel mit dem Formeltest. Können beim Druck bestimmte Beziehungen nicht aufgelöst werden oder ist das Funktionsergebnis nicht definiert (cot(0)), wird als Ergebnis ”Null” angezeigt.
Der Abstand vom linken Rand wird in mm angenommen. Zusätzlich besteht die Möglichkeit der Textlängenbegrenzung (Angabe in mm):
- Zeilenumbruch nach einer Länge von
- Abschneiden nach einer Länge von
- Keine Begrenzung der Textlänge
Name
Der Name kann frei eingetragen oder für eine Sonderplatzhalter-Funktion ausgewählt werden. Über diesen Namen steht das Feld unter Formelfelder für die Datenfeldauswahl zur Verfügung.
Aktion
Das Formelfeld enthält bei ausgewählter Aktion:
- zuweisen → den aktuellen Wert
- summieren → die aufgelaufene Summe über das Formular
- Blockweise summieren → die aufgelaufene Summe je Block
- Um mit einem Formelfeld, das in einem anderen Block angelegt wurde, eine Aktion auszuführen, muss auch im Feld Name eine Qualifikation des Formelfeldes erfolgen (Blockname mit Punkt davor setzen).
Formeln in Formelplatzhaltern
Operanden und Operatoren
Als Operanden sind Variablen (Datenfelder oder Formelfelder) und Konstanten (Zahlen-, Zeichenketten- oder logische Konstanten) möglich. Operatoren sind die verschiedensten Funktionen.
|
Beschreibung | Beispiele |
numerisch |
Platzhalter vom Typ Integer, SmallInt, Float, Date, AutoInc |
{FreieZahl1} |
logisch |
Platzhalter vom Typ Boolean |
{FreiesKennzeichen1} |
string |
Platzhalter vom Typ String |
{Lager} |
- Variablen
Variablen in Formeln (variable Operanden, Datenfelder) werden über Auswahlschalter eingefügt und mit geschweiften Klammern gekennzeichnet. Formelausdrücke können Zeichenketten, Zahlen, Wahrheitswerte und eingeschränkt auch Null-Werte (unbestimmt vom Wert und Typ) verarbeiten und als Ergebnis liefern.
|
Beschreibung | Beispiele |
numerisch |
pi und Zahlen |
1 |
logisch |
true für wahr |
true |
string |
einfacher Zeichenketten |
”HP DeskJet 845” |
- Numerische Konstanten - Konstanten können in dezimaler, binärer, oktaler oder hexadezimaler Schreibweise eingegeben werden. Bei der binären Schreibweise ist ein ”b” anzuhängen, bei der oktalen ein ”o” und bei der hexadezimalen ein ”h”. Bei gebrochenen Zahlen ist das in Windows eingestellte Dezimalzeichen zu verwenden. Ausschliesslich bei der (normalen) dezimalen Schreibweise ist auch eine Darstellung in Exponentialdarstellung möglich. Dabei ist zuerst die Mantisse anzugeben, danach ein ”E” und am Ende der Exponent zur Basis 10. Eine vordefinierte Konstante ist pi mit 3.14159....
- Logische Konstanten - Logikkonstanten sind true und false.
- Zeichenkettenkonstanten / -funktionen - Zeichenkettenkonstanten sind in Anführungszeichen ” einzuschliessen. Innere Anführungszeichen sind zu doppeln.
user (liefert das zweistellige Benutzerkürzel) - Datumskonstanten - date (liefert das aktuelle Rechnerdatum) -now (liefert das aktuelle Rechnerdatum mit Zeitangabe)
- Konstante für leere Felder - null - Null-Werte sollten in Formularen nicht an Formelplatzhalter zugewiesen werden. Sie können für die Auswertung von select- und dbf-Anweisungen benutzt werden. Der Vergleich mit anderen Typen liefert stets false.
Hinweis: Die Verarbeitung von Datums- und Zeitwerten erfolgt über Zahlen, wobei der ganzzahlige Anteil das Datum und der gebrochene Anteil den Zeitanteil enthält. So kann man beispielsweise das Datum des nächsten Tages drucken, wenn man zur ”Datumszahl” eine 1 addiert.
Beispiel
[V:0:DATS:::0::{System.Datum/Uhrzeit} 1]
[V:0::::0::asdatestring({System.Datum/Uhrzeit} 1;A.D.")]
Operatoren Funktionen
Für Funktionen gilt generell:
- Parameter sind in runde Klammern zu setzen
(Ausnahmen z.B., mod, not,...) - mehrere Parameter sind mit Semikolon zu trennen
- Leerzeichen zwischen Parametern können beliebig gesetzt werden
- Funktionsbezeichner enthalten keine Grossbuchstaben
Vorrangregeln
Die Abarbeitung erfolgt nach den üblichen Vorrangregeln (Potenzen vor Punktrechnung vor Strichrechnung). Wollen Sie eine bestimmte Abarbeitungsreihenfolge festlegen, müssen Sie runde Klammern benutzen.
Zeichenketten Operanden und Funktionen
Funktion |
Beschreibung
|
|
Addition (Aneinanderkettung von Zeichenketten) |
* |
wird eine Zeichenkette mit einer Zahl > 0 multipliziert, erhält man eine Zeichenkette, in der die ursprüngliche Zeichenkette vervielfältigt wurde; |
upper |
Grossschreibung |
lower |
Kleinschreibung |
substring |
Teilzeichenkette |
replace |
ersetzt (nicht rekursiv) alle Vorkommen des zweiten Zeichenfolgenausdrucks im ersten Zeichenfolgenausdruck durch einen dritten Ausdruck; |
asfilename |
für Dateinamen nicht erlaubte Zeichen der Ausgangszeichenkette werden durch ein Ersatzzeichen ersetzt; |
concat |
verbindet zwei Zeichenfolgenausdrücke durch einen Verkettungsausdruck |
newline |
mit dieser Konstante kann ein Zeilenumbruch innerhalb des aktuellen Platzhalters erzwungen werden |
length |
liefert in einem numerischen Ergebnis die Anzahl der Zeichen in der Zeichenkette |
trim |
entfernt am Anfang und Ende einer Zeichenkette alle Leer- und Steuerzeichen |
ltrim |
entfernt am Anfang einer Zeichenkette alle Leer- und Steuerzeichen |
rtrim |
entfernt am Ende einer Zeichenkette alle Leer- und Steuerzeichen |
locate |
liefert in einem numerischen Ergebnis die erste Position der Suchzeichenkette in einer Ausgangszeichenkette; falls die Suchzeichenkette nicht enthalten ist, ist das Ergebnis 0; |
lines |
liefert die Anzahl der Zeilen eines Langtextes |
guid36 |
liefert als Ergebnis eine Zeichenkette (36 Zeichen) ohne die führende und schliessende Klammer |
fill |
füllt eine Zeichenkette bis zur definierten Länge auf |
split |
zerteilt eine Zeichenkette in gleichmässige Teile |
numerische Operanden und Funktionen
Funktion |
Beschreibung
|
|
Addition (von Zahlen und Zeichenketten) |
- |
negativer Wert oder Subtraktion |
* |
Multiplikation |
/ |
Division |
mod |
Modulo-Funktion |
div |
ganzzahlige Division |
^ |
Potenz, nach Möglichkeit durch Multiplikationen ersetzen |
! |
Fakultät |
ln |
natürlicher Logarithmus (Basis e) |
ld |
Logarithmus zur Basis 2 |
lg |
dekadischer Logarithmus (Basis 10) |
abs |
Absolutbetrag |
int |
ganzzahliger Anteil |
sign |
Signumfunktion (Ergebnis ist: -1 für Werte <0, 1 für Werte>0, 0 bei 0) |
frac |
gebrochener Anteil |
floor |
grösste ganze Zahl, die kleiner oder gleich dem angegebenen numerischen Ausdruck ist (Bsp.: floor(1,7) ergibt 1) |
ceiling |
kleinste ganze Zahl, die grösser oder gleich dem angegebenen numerischen Ausdruck ist (Bsp.: ceiling(1,7) ergibt 2) |
rdm |
Zufallszahl kleiner als der Operand erzeugen |
rnd |
Rundung |
rn2 |
Rundung auf 2 Nachkommastellen |
sqrt |
Quadratwurzel |
sin |
Sinusfunktion |
cos |
Kosinusfunktion |
tan |
Tangensfunktion |
cot |
Kotangensfunktion |
Beispiel
Um den Bruttowert (bei gegebenem Nettowert und dem Prozentwert der Steuer) auszurechnen, gilt zunächst die Formel:
{Netto}*(1 {Steuer}/100).
Da das Ergebnis dabei aber Zehntel- und Hundertstelstellen enthalten kann, wird es noch auf zwei Stellen gerundet. Die einzugebende Formel lautet somit:
rn2({Netto}*(1 {Steuer}/100))
Bit-Operationen
Funktion |
Beschreibung
|
not |
logische Negation der Binärwerte |
and |
logische Und- Verknüpfung der Binärwerte |
ior |
logische Oder- Verknüpfung der Binärwerte |
xor |
log. ExklusivOder- Verknüpfung der Binärwerte |
shl |
bitweises Verschieben nach links |
shr |
bitweises Verschieben nach rechts |
Logikoperanden
Funktion |
Beschreibung
|
not |
logische Negation |
and |
logische Und-Verknüpfung |
ior |
logische Oder-Verknüpfung |
xor |
logische ExklusivOder-Verknüpfung |
if |
Fallunterscheidung |
Null-Werte
Funktion |
Beschreibung
|
isnull |
1. Parameter: ein Ausdruck von beliebigem Format(Zeichenkette, Zahl, Datum, logisch, Null-Wert) |
Vergleichsoperatoren
Funktion | Beschreibung |
= |
Gleichheit |
<> |
Ungleichheit |
< |
kleiner |
> |
grösser |
<= |
kleiner gleich |
>= |
grösser gleich |
(die Operanden müssen vom gleichen Typ sein und liefern ein logisches Ergebnis)
Umwandlungsfunktionen
Funktion |
Beschreibung
|
asfloat |
liefert den numerischen Wert einer Zeichenkette |
asstring |
wandelt einen numerischen Wert in eine Zeichenkette um |
asdatestring |
wandelt ein Datum in eine Zeichenkette um |
asdatetime |
wandelt ein Datum in einen numerischen Wert (internes Datumsformat, mit dem gerechnet werden kann) um |
monat |
wandelt einen numerischen Wert zwischen 1 und 12 in den Monatsnamen um, Werte > 12 bzw. < 1 geben einen Leerstring aus; |
xmltag |
wandelt eine Zeichenkette in das Format UTF8 um und schliesst das Ergebnis in < > ein |
xmlstring |
wandelt eine Zeichenkette in UTF8 um, nachdem zuvor <, > und & ersetzt wurden |
htmlintext |
liefert den Textinhalt eines HTML-Quelltextes Parameter: Ausgangszeichenkette |
Hilfsfunktionen zum Schreiben von Transact-SQL-Select-Anweisungen
Funktion |
Beschreibung |
astsqlfloat |
1. Parameter: Zahl |
astsqlnchar |
1. Parameter: Zeichenkette |
astsqldate |
1. Parameter: Ausgangsdatum |
astsqlbit |
1. Parameter: logischer Wert |
Hinweis: Die Funktionen liefern als Ergebnis eine Zeichenkette mit einem Leerzeichen am Anfang und am Ende und können zur Unterstützung beim Schreiben von Transact-SQL-Select-Anweisungen in Formeln oder eigenen Blöcken verwendet werden.
Datenbankfunktionen
Funktion |
Beschreibung |
dbf (nur BDE) |
liefert den Wert eines Tabellenfeldes |
select |
liefert den Wert eines Tabellenfeldes |
Beispiele
select("bestellnummer from artalter where Artikelnummer = ’" {Artikelnummer} ”’ and id = ’AK’ and Alternativartikel = ’" {AdressNr} "’")
→ liefert die Kundenbestellnummer eines Artikels, die Artikelnummer und Adressnummer des Kunden werden als Variablen (Datenplatzhalter) übergeben
select("Text from Text where Blobkey = ’Q" {.Belegtyp} "°" {.Belegnummer} "’")
select("Text from Text where Blobkey = ’Qv {.Belegtyp} {.Belegnummer} "’")
→ liefern den Kopf- / Fusstext eines Beleges der Belegtyp und die Belegnummer werden als Variablen (Datenplatzhalter) übergeben
select("Text from Text where Blobkey = ’BP" guid36({Kennung}) "’")
→ liefert den Positionstext einer Belegposition, die Kennung vom Datentyp GUID wird ohne geschweifte Klammer als Variable (Datenplatzhalter) übergeben
select("preis from arpreis where Artikelnummer = ’" {Artikelnummer} "’ and Preistyp = ’K’ and Waehrung = ’" {.Waehrungscode} "’ and TypNummer = ’" {.Adressnummer} "’ and (VonDatum <= ’" asdatestring({.Datum}) "’ or vonDatum is null) and (bisDatum >= ’" asdatestring({.Datum}) "’ or bisDatum is null) and menge = 0")
→ liefert den Kundenpreis eines Artikel, die Artikelnummer, der Währungscode, die Kundennummer (Adressnummer) und das Datum werden als Variablen (Datenplatzhalter) übergeben
Funktionen zum Lesen Schreiben von Variablenwerten
Funktion |
Beschreibung
|
iniput |
schreibt einen Eintrag in eine Ini-Datei oder löscht einen Eintrag; liefert als Ergebnis einen logischen Wert, ob der Befehl erfolgreich war: |
iniget |
liest eine Zeichenkette aus einer Ini-Datei: |
put |
speichert programmintern einen Wert, solange das Programm läuft: |
get |
liest programminterne Werte: |
Datumsfunktionen
Funktion | Beschreibung |
zinstage |
ermittelt die Zinstage entsprechend der 30tägigen Zinsperiode der Bank; |
zinsmonate |
ermittelt die Zinsmonate; |
zahlungstermin |
ermittelt aus einem Datum und den Angaben der Zahlungsbedingung einen Termin; |
kweek |
ermittelt die Kalenderwoche; als Parameter ist ein Datum |
kyear |
ermittelt das Kalenderjahr zu dem die Kalenderwoche gehört; als Parameter ist ein Datum |
Beispiele
- für das Datum 30.12.2015 liefert kweek eine 52, kyear die 2015 → der 30.12.2015 gehört zur 52.Kalenderwoche 2015
- für das Datum 31.12.2015 liefert kweek eine 1, kyear die 2016 → der 31.12.2015 gehört schon zur 1.Kalenderwoche 2016
- asdatestring(zahlungstermin(asdatetime("20.5.2015); 1; 26)) ergibt den 26.05.2015, also den nächsten 26.
- asdatestring(zahlungstermin(asdatetime("20.5.2015"); 101; 26)) ergibt den 26.06.2015, also den 26. des Folgemonats
Bedeutung des 2. Parameters ”Typ der Berechnung” der Funktion zahlungstermin:
0 → innerhalb von ?? Tagen
1 → zum nächsten ??.
2 → zum nächsten ??. 1 Monat
3 → zum nächsten ??. 2 Monate
4 → zum nächsten ??. 3 Monate
5 → zum nächsten ??. 4 Monate
6 → zum nächsten ??. 5 Monate
7 → zum nächsten ??. 6 Monate
8 → zum nächsten ??. 7 Monate
9 → zum nächsten ??. 8 Monate
10 → zum nächsten ??. 9 Monate
11→ zum nächsten ??. 10 Monate
12 → zum nächsten ??. 11 Monate
13 → zum nächsten ??. 12 Monate
101→ zum ??. des Folgemonats
Spezielle Funktionen
in allen Programmen:
Funktion | Beschreibung |
shellexecute |
zum Absetzen von Kommandos für das Betriebssystem; |
datenpfad |
liefert den Datenpfad mit abschliessenden Backslash |
mandantenpfad |
liefert den Mandantenpfad mit abschliessenden Backslash |
nur im Auftrag
Funktion | Beschreibung |
bestand |
liefert den aktuellen Bestand von Artikeln; |
bestandpm |
liefert den aktuellen Bestand von Artikeln in der Preismengeneinheit; |
bestellt |
liefert die aktuell bestellte Menge von Artikeln; |
gepackt |
liefert den gepackten Bestand von Artikeln; |
inproduktion |
liefert die Menge von Artikeln, die produziert wird; |
reserviert |
liefert die aktuell reservierte Menge von Artikeln; |
listenpreis |
liefert den aktuellen Listenpreis von Artikeln; |
kalkulationspreis |
liefert den aktuellen Kalkulationspreis von Artikeln; |
belegtyp |
liefert die Beschreibung des Belegtyps; |
belegadresskuerzel |
liefert das Adresskürzel des Belegtyps (z.B. ”KU” bei Kundenbelegen); |
belegeafaktor |
liefert die Information zur Interpretation von RNetto (z.B. bei Rechnungen 1, bei Gutschriften -1); |
mwst |
liefert die Steuerprozente eines Steuerschlüssels zum aktuellen Datum; |
checksumpost |
berechnet eine spezielle Prüfziffer; |
projektsumme |
liefert in Abhängigkeit vom Preistyp des Projektes die Netto- oder Bruttoprojektsumme; |
Die Formelfunktionen bestand(), bestandpm() und gepackt() haben verschiedene Parameter um detaillierte Lagerinformationen zu erhalten, diese können als Ausdruck oder Datenbankfeld eingefügt werden.
Parameter
- (artikelnummer)
- (artikelnummer; standort)
- (artikelnummer; standort; lager)
- (artikelnummer; standort; lager; seriecharge)
- (artikelnummer; standort; lager; serieId)
- (artikelnummer; standort; lager; seriecharge; lageroption)
- (artikelnummer; standort; lager; serieId; lageroption)
- (artikelnummer; lagerplatzid)
- (artikelnummer; lagerplatzid; seriecharge)
- (artikelnummer; lagerplatzid; serieId)
- (artikelnummer; lagerplatzid; seriecharge; lageroption)
- (artikelnummer; lagerplatzid; serieId; lageroption)
Parameteroptionen
- die Parameter Artikelnummer, Standort, Lager, SerieCharge dürfen leer sein
- die Parameter Lagerplatzid, Serieid dürfen 0 sein
- der Parameter Lager kann einen Lagerplatz bezeichnen (z.B. 500,1)
- der Parameter Lageroption ist die Summe von Lagern, die ausgeschlossen werden sollen
1 → Sperrlager
2 → Wareneingangslager
4 → Kommissionslager
Hinweis: Die Unterscheidung der Parameter wird anhand des übergebenen Datentyps getroffen!
Beispiele
bestellt ({Artikelnummer};”1”)
liefert die für den Standort ”1” bestellte Menge des vom Datenfeld ”Artikelnummer” ausgegebenen Artikels
bestand("500009";"1";"500,1,1")
liefert den Bestand des Artikels ”500009” auf dem Lagerplatz ”500,1,1” des Flächenlagers ”500” im Standort ”1”
shellexecute("notepad";"c:\test.txt";3)
öffnet die Datei c:\test.txt im maximierten NotePad
Diese speziellen Funktionen sind über Formelplatzhalter in jeder beliebigen Druckvorlage anwendbar.
Spezieller Formelplatzhalter Bild
Über einen Formelplatzhalter mit folgendem Aufbau ist es möglich, Artikelbilder z.B. in Auswertungen zu integrieren:
- #7 (programminterner Code für das Handling)
- (verknüpft die einzelnen Elemente der String-Konstanten)
- Tabellenkürzel (Blobkey) der Tabelle (z.B. ”AR” für die Artikeltabelle)
- Schlüsselfeld der Tabelle (z.B. {Artikelnummer} → wird als Datenfeld ausgewählt)
Dieser Formelplatzhalter druckt das Bild eines Datensatzes mit der Ordnungszahl 0. Um ein Bild einer bestimmten Ordnung zu drucken kann die Formel erweitert werden. Dafür sind an das bisherige Konstrukt noch #7 und die Ordnungsnummer.
Beispiel
[V:140:BldN:::0::#7+"AR"+{Artikelnummer}+#7+"1"]
HTML über Verweise
Die HTML-Platzhalter stehen nur in den Druckvorlagen des Artikelstamms oder der Belege zur Verfügung. In Druckvorlagen, z.B. aus einem Makro, kann man über einen Verweis die HTML-Texte ausgeben. Dazu ist es notwendig, auf die Tabelle Text mit dem zusammengesetzten Feld Blobkey zu verweisen und dann das Feld HTMLText auszuwählen. Der Formulareditor erkennt an dem Feldtyp HTML dann automatisch die HTML-Fähigkeit des Feldes und schaltet auf die formatierte Ausgabe um.
Zu beachten ist, dass auf die Tabelle Text nicht allein mit der Artikelnummer oder Kennung der Belegposition allein der Verweis erstellt werden kann. Zusätzlich muss das zweistellige Tabellenkürzel mitgegeben werden z.B.:
- "AR" {Artikelnummer} → Artikellangtext
- "AT" {Artikelnummer} → Artikeldimensionstext
- "AS" {Artikelnummer} → Artikelbestelltext
- "AI" {Artikelnummer} → Artikelinfotext
- "BP" guid36({Kennung}) → Belegpositionstext.
Eine Umsetzungsmöglichkeit im Formular besteht in der Kombination eines Formelfeldes mit einem Datenfeld:
- Die Artikelnummer wird mit dem zweistelligen Kürzel „addiert“ und einem Variablennamen z.B. ”HTML-Verweis” zugewiesen.
[V:0::HTML-Verweis:2:0::"AR" {Artikelnummer}] - Das neue Formelfeld ”HTML-Verweis” wird als Grundlage für einen Verweis in einem Datenfeldplatzhalter ausgewählt und damit auf die Tabelle Text → Feld ”HTMLText” verwiesen. Dadurch ändert sich der Datenfeld-Platzhalter in den HTML-Platzhalter.
[H:0:0:>TE~HTMLText HTML-Verweis] - Im Druckformular werden beide Platzhalter im Hauptblock → Positionsbereich positioniert:
[V:300::HTML-Verweis:2:0::"AR" {Artikelnummer}] [H:25:0:>TE~HTMLText HTML-Verweis]
Anzahl Ausdrucke über Formular steuern
Über den Formelplatzhalter AnzahlExemplare kann die Anzahl der Ausdrucke nun auch direkt in Formularen und Folgeformularen über beliebige Formeln ermittelt werden. Im Beispiel unten wird die Anzahl der Ausdrucke über das Feld [FreieZahl1] festgelegt. Der Formelplatzhalter überschreibt die ggf. vorher im Druckdialog festgelegte Anzahl der Exemplare. Dies kann über eine Bedingung verhindert werden.
Beispiel
// Anzahl Exemplare wird überschrieben mit dem Wert aus "FreieZahl1", wenn lt. Druckdialog = 1 [T:0::Anzahl Exemplare: ] [D:2:{System.DruckKopieAnzahl}:>:1] [V:0::AnzahlExemplare:2:0::isnull({.FreieZahl1};0)]
Formeltest
Zur Überprüfung der korrekten Schreibweise (Klammern, Trennzeichen, Funktionsnamen) können Sie den Kontextmenüpunkt Syntaxprüfung (Tastenkürzel [Umsch] + [F4]) verwenden. Daraufhin wird in einem sich öffnenden Fenster angezeigt, ob es sich um eine gültige Formel handelt, oder ob ein Syntaxfehler gefunden wurde. Im Falle eines Syntaxfehlers wird im Eingabefeld die Eingabemarke auf die Position gestellt, an der der Fehler auftrat.
Der Kontextmenüpunkt Test (rechte Maustaste im Feld) oder (Tastenkürzel [Ctrl] + [Alt] + [F4]) führt ein Testlauf durch, wobei nicht bekannte Variablen abgefragt werden.
Zum Test öffnet sich für alle in der Formel gewählten Platzhalter automatisch die Maske zur Eingabe der Variablen. Geben Sie hier beliebige Werte ein, diese müssen dem jeweiligen Feldtyp (z.B. String/Float) entsprechen. Das Ergebnis oder eventuelle Fehler werden Ihnen anschliessend angezeigt.
Hinweis: Erscheint das Abfragefenster ”Variablenwert” mit der Typangabe ”Widestring” kann eine Zeichenkette ohne begrenzende Anführungszeichen (”) eingegeben werden. Erscheint das Abfragefenster mit der Typangabe "Unbekannt" erkennt der Testlauf den Typ erst an Ihren Eingaben. Deshalb sind Zeichenketten sicherheitshalber in begrenzende Anführungszeichen (”) zu setzen, um Verwechslungen mit Zahlen oder logischen Werten zu vermeiden. Datumswerte vom Typ ”Unbekannt” sind als Zahlenwert einzugeben z.B. 41380 (für den 16.04.2013).